﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WindowsTools
{
    class API
    {
        #region 项目模板

        /// <summary>
        /// 保存项目模板
        /// </summary>
        /// <param name="dtProjectTemplate">项目模版DataTable</param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void SaveProjectTemplate(PMS_ProjectTemplate projectTemplate, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {
            //项目模板编码 的自动生成
            //项目类别 

        }

        /// <summary>
        /// 修改项目模板
        /// </summary>
        /// <param name="dtProjectTemplate">需要修改的数据</param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void EditProjectTemplate(PMS_ProjectTemplate projectTemplate, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {

        }

        /// <summary>
        ///根据主键删除项目模版
        /// </summary>
        /// <param name="templateID">主键</param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void DeleteProjectTemplateById(string templateID, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {///更改ActiveFlag 的状态即可

        }


          /// <summary>
        /// 检查模版数据
        /// </summary>
        public bool CheckProjectTemplate（PMS_ProjectTemplate projectTemplate,, Hashtable mapParms, out string sReturnCode, out string sReturnMsg）
        {
            
        }
               

        /// <summary>
        /// 根据项目Id，获取项目模版信息
        /// </summary>
        /// <param name="templateID"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        /// <returns></returns>
        public PMS_ProjectTemplate GetProjectTemplateById(string templateID, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {

        }

         /// <summary>
        /// 根据项目类别，获取项目模版信息
        /// </summary>
        /// <param name="partentID"></param>
        /// <param name="singleLevel">true 是只查子级，false 查出全部的数据</param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        /// <returns></returns>
        public IEnumerable<PMS_ProjectTemplate> GetProjectTemplateByPartentID(string partentID,bool singleLevel, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {

        }
        
        /// <summary>
        /// 保存项目模板明细
        /// </summary>
        /// <param name="pms_PTDetail">项目模板明细</param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void SavePTDetail（PMS_PTDetail pms_PTDetail， Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {
            

        }

        /// <summary>
        /// 检查明细数据
        /// </summary>
        public bool CheckPTDetail（PMS_PTDetail pms_PTDetail, Hashtable mapParms, out string sReturnCode, out string sReturnMsg）
        {
            ///重名检查
        }
                
      
        /// <summary>
        /// 编辑项目模板明细
        /// </summary>
        /// <param name="pms_PTDetail">项目模板明细</param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void EditPTDetail（PMS_PTDetail pms_PTDetail， Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {
            

        }

         /// <summary>
        /// 删除项目模板明细
        /// </summary>
        /// <param name="lineItemID">Id</param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void DeletePTDetailById（string lineItemID， Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {            

        }
        
        /// <summary>
        /// 根据Id，获取项目模版明细信息
        /// </summary>
        /// <param name="templateID"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        /// <returns></returns>
        public PMS_PTDetail GePTDetaiById(string lineItemID, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {

        }
        

        /// <summary>
        /// 根据项目层级编码，获取项目模版信息
        /// </summary>
        /// <param name="templateID"></param>
        /// <param name="levelCode"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        /// <returns></returns>
        public IEnumerable<PMS_PTDetail> GetPTDetailByLevelCode(string templateID,string levelCode,bool singleLevel, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {

        }

         /// <summary>
        /// 根据项目父编码，获取项目模版信息
        /// </summary>
        /// <param name="levelCode"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        /// <returns></returns>
        public IEnumerable<PMS_PTDetail> GetPTDetailByPartentID(string partentID, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {

        }
     
            /// <summary>
            /// 复制项目模版
            /// </summary>
            /// <param name="projectType">项目模版类型</param>
            /// <param name="mapParms"></param>
            /// <param name="sReturnCode"></param>
            /// <param name="sReturnMsg"></param>
            public void CopyProjectTemplateByProjectType(string projectType ,Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
            {
        

            }

         
        /// <summary>
        /// 获得编码
        /// </summary>
        /// <param name="orgCode">公司编码</param>
        /// <param name="projectType">项目类型</param>
        /// <param name="?"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        /// <returns></returns>
        public string GetProjectTemplateCode(string orgCode,string projectType  ,Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        { 
        

        }
           

        #endregion
              
        #region 过程操作
		
        /// <summary>
        /// 保存阶段/里程碑/交付物
        /// </summary>
        /// <param name="process"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void SaveProcess(PMS_Process process, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {
           

        }

        /// <summary>
        /// 编辑 阶段/里程碑/交付物
        /// </summary>
        /// <param name="process"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void EditProcess(PMS_Process process, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {           

        }
        

        /// <summary>
        ///根据主键删除 阶段/里程碑/交付物
        /// </summary>
        /// <param name="entryID">主键</param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void DeleteProcessById(string entryID, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {

        }

        /// <summary>
        /// 根据Id，获取 阶段/里程碑/交付物 信息
        /// </summary>
        /// <param name="entryID"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        /// <returns></returns>
        public PMS_Process GetProcessById(string entryID, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {

        }     
   

        /// <summary>
        /// 根据层级编码，获取 阶段/里程碑/交付物 信息
        /// </summary>
        /// <param name="levelCode"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        /// <returns></returns>
        public IEnumerable<PMS_Process> GetProcessByLevelCode(string levelCode, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {

        }     
  
        /// <summary>
        /// 根据PartentID，获取 阶段/里程碑/交付物 信息
        /// </summary>
        /// <param name="levelCode"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        /// <returns></returns>
        public IEnumerable<PMS_Process> GetProcessByPartentID(string partentID, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {

        }     


         /// <summary>
        /// 根据类型，获取 阶段/里程碑/交付物 信息
        /// </summary>
        /// <param name="ItemType">(阶段/里程碑/交付物)编码</param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        /// <returns></returns>
        public IEnumerable<PMS_Process> GetProcessByItemType(string ItemType, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {

        }     
            

        /// <summary>
        /// 检查一些必输状态 （阶段/里程碑/交付物）
        /// </summary>
        /// <param name="process"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void CheckProcess(PMS_Process process, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {
           

        }
              
  
        /// <summary>
        /// 增加项目模板明细角色
        /// </summary>
        /// <param name="detailRole"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void IncreasePTDetailRole(PMS_PTDetailRole detailRole, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {
           

        }


        /// <summary>
        /// 删除项目模板明细角色
        /// </summary>
        /// <param name="detailRole"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void DeletePTDetailRole(PMS_PTDetailRole detailRole, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {
           

        }

        /// <summary>
        /// 获取项目模板明细角色列表接口实现
        /// </summary>
        /// <param name="lineItemID"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public  IEnumerable<PMS_PTDetailRole> GetPTDetailRoles(string lineItemID, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {
        }



 
	    #endregion        

        #region 工作日历
	    
        /// <summary>
        /// 初始化工作日历数据
        /// </summary>
        /// <param name="year">年份</param>
        /// <param name="month">月份</param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void InitWorkDay(int year ,int month, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {
        }      

        /// <summary>
        /// 保存工作周
        /// </summary>
        /// <param name="workWeek"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void SaveWorkDay(PMS_WorkWeek workWeek, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {

        }     

        /// <summary>
        /// 编辑工作周
        /// </summary>
        /// <param name="workWeek"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void EditWorkDay(PMS_WorkWeek workWeek, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {

        }  
   
        /// <summary>
        ///删除工作周
        /// </summary>
        /// <param name="workWeek"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void DeleteWorkDay(PMS_WorkWeek workWeek, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {

        }    

        /// <summary>
        ///根据年份/月份获取工作周
        /// </summary>
        /// <param name="workWeek"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void GetWorkDay(int year,int month, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {

        }    
 
 
        /// <summary>
        /// 检查工作周
        /// </summary>
        /// <param name="workWeek"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void CheckWorkDay(PMS_WorkWeek workWeek, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {
            ///检查工作周是否有重叠，单纯的提示    
        
        }



          /// <summary>
        /// 设置工作日
        /// </summary>
        /// <param name="workDays">>Dictionary 的字典数组，根据Key值 Add，Del标示新增删除</param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void  SetWorkDays(IEnumerable<IDictionary<string,string>()> workDays, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {
                        
        }

        
        /// <summary>
        /// 检查是否是工作日
        /// </summary>
        /// <param name="workDays"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void CheckIsWordDay(string workDay, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {       
        
        }
	        



        /// <summary>
        /// 设置提醒日
        /// </summary>
        /// <param name="reminderDays">Dictionary 的字典数组，根据Key值 Add，Del标示新增删除</param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void  SetReminderDays(IEnumerable<IDictionary<string,string>()> reminderDays, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {
                        
        }


        /// <summary>
        /// 检查是否是提醒日
        /// </summary>
        /// <param name="reminderDays"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void CheckIsReminderDay(string reminderDays, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {       
        
        }
        
        
        /// <summary>
        /// 获得最近一个提醒日
        /// </summary>
        /// <param name="reminderDays"></param>
        /// <param name="mapParms"></param>
        /// <param name="sReturnCode"></param>
        /// <param name="sReturnMsg"></param>
        public void GetLatelyReminderDay(string reminderDays, Hashtable mapParms, out string sReturnCode, out string sReturnMsg)
        {       
        
        }
	       
	        

	    #endregion

    }
}
